package com.woniuxy.educationplatform.service.impl;

import com.woniuxy.educationplatform.bean.RoleBean;
import com.woniuxy.educationplatform.mapper.RoleMapper;
import com.woniuxy.educationplatform.service.IRoleService;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;

import javax.annotation.Resource;
import java.util.List;

/**
 * @author unreleased
 * @date 2020/12/13 10:45
 */
@Service
@Transactional(readOnly = true)
public class RoleServiceImpl implements IRoleService {
    @Resource
    private RoleMapper roleMapper;

    /**
     * 查询所有的角色信息
     *
     * @return 包含所有正常角色的一个List集合
     */
    @Override
    public List<RoleBean> findAllRoles() {
        return roleMapper.findAllRoles();
    }

    /**
     * 用于超级管理员修改角色信息
     *
     * @param roleBean 修改的数据
     * @return 数据库受影响条数 判断是否修改成功
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean updateRoleById(RoleBean roleBean) {
        return roleMapper.updateRoleById(roleBean)>0;
    }

    /**
     * 根据管理员ID删除对应的管理员
     *
     * @param id 前端对应id
     * @return 返回收影响的条数
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean delRoleById(Integer id) {
        if(id==1){
            System.out.println("有人试图删除超级管理员");
            return false;
        }
        return roleMapper.delRoleById(id)>0;
    }

    /**
     * 新增角色
     *
     * @param roleBean 携带信息的roleBean对象
     * @return 是否添加成功
     */
    @Override
    @Transactional(rollbackFor = Exception.class)
    public boolean saveRole(RoleBean roleBean) {
        return roleMapper.saveRole(roleBean)>0;
    }

    /**
     * 查询所有角色
     *
     * @return 所有角色 包括禁用的
     */
    @Override
    public List<RoleBean> findRoleList() {
        return roleMapper.findRoleList();
    }
}
